<!DOCTYPE html>
<html lang="en">
<head>
    <title>Document</title>
</head>
<body>
  <script>
    // 类
   function Fn(){
     this.a = 1
     this.b =2
     this.getA = function(){
       console.log(this.a);
     }
   }

   //原型对象
   Fn.prototype.getA = function(){
     console.log(this.a);
   }
   Fn.prototype.getB = function(){
     console.log(this.b);
   }

   //实例
   let f1 = new Fn()
   let f2= new Fn()

   //问题
  //  console.log(f1.getA===f2.getA); // false
  //  console.log(f1.getB===f2.getB); // false
  //  console.log(f1.__proto__.getB===Fn.prototype.getB); // true
  //  console.log(f1.__proto__.getA===f2.getA); // 
  //  console.log(f1.getA===Fn.prototype.getA); // false
  //  console.log(f1.constructor);  // Fn
  //  console.log(Fn.prototype.__proto__.constructor);  // Object
  //  console.log(Fn.prototype.__proto__.__proto__);  // null
  //  f1.getA()
  // //  注意：函数this 执行特点 谁调用 this就指向谁
  //  f1.__proto__.getA() //getA this指向Fn的原型对象，这个对象没有a
  //  Fn.prototype.getB()//getB this指向Fn的原型对象，这个对象没有b

  //  f2.getB() //getB this指向f2的实例对象，这个对象有b=2

 //函数原型对象 
console.log(Fn.__proto__); 
console.log(Fn.__proto__.constructor);
console.log(Fn.__proto__.constructor.__proto__);


  //  ----------------------------------------------





 </script>
  
</body>
</html>